package com.app.biz.mapper;

import java.util.List;
import com.app.biz.domain.BizIndustrialSectorMetrics;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 分行业企业主要经济指标临时Mapper接口
 *
 * @author SangGuangCan
 * @date 2024-01-02
 */
public interface BizIndustrialSectorMetricsMapper
{
    /**
     * 查询分行业企业主要经济指标临时
     *
     * @param baseId 分行业企业主要经济指标临时主键
     * @return 分行业企业主要经济指标临时
     */
    public BizIndustrialSectorMetrics selectBizIndustrialSectorMetricsByBaseId(String baseId);

    /**
     * 查询分行业企业主要经济指标临时列表
     *
     * @param bizIndustrialSectorMetrics 分行业企业主要经济指标临时
     * @return 分行业企业主要经济指标临时集合
     */
    public List<BizIndustrialSectorMetrics> selectBizIndustrialSectorMetricsList(BizIndustrialSectorMetrics bizIndustrialSectorMetrics);

    /**
     * 新增分行业企业主要经济指标临时
     *
     * @param bizIndustrialSectorMetrics 分行业企业主要经济指标临时
     * @return 结果
     */
    public int insertBizIndustrialSectorMetrics(BizIndustrialSectorMetrics bizIndustrialSectorMetrics);

    /**
     * 修改分行业企业主要经济指标临时
     *
     * @param bizIndustrialSectorMetrics 分行业企业主要经济指标临时
     * @return 结果
     */
    public int updateBizIndustrialSectorMetrics(BizIndustrialSectorMetrics bizIndustrialSectorMetrics);

    /**
     * 删除分行业企业主要经济指标临时
     *
     * @param baseId 分行业企业主要经济指标临时主键
     * @return 结果
     */
    public int deleteBizIndustrialSectorMetricsByBaseId(String baseId);

    /**
     * 批量删除分行业企业主要经济指标临时
     *
     * @param baseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizIndustrialSectorMetricsByBaseIds(String[] baseIds);

    /**
     * <p>
     *     查询数据库中最新的一个日期
     * </p>
     * @return
     */
    @Select("select bism.`year_month` from biz_industrial_sector_metrics as bism order by bism.`year_month` desc limit 1")
    String getLatestDateData();

    @Delete("delete from biz_industrial_sector_metrics")
    void clearAllTableData();

    List<String> getUniqueDatesFromDatabase();

    List<BizIndustrialSectorMetrics> selectBizIndustrialSectorMetricsAllData();

    void batchInsertBizIndustrialSectorMetrics(@Param("list") List<BizIndustrialSectorMetrics> list);

    List<BizIndustrialSectorMetrics> selectBizIndustrialSectorMetricsListNoParams();


}
